Image data provided to an imaging device must follow the image scanning path that the imaging device follows as it produces images on media, either directly or indirectly, so that the imaging device forms the correct portion of the image at the correct location. A laser scanner assembly in a laser printer is an example of an imaging device that indirectly produces images to be printed on a medium such as paper by producing an electrically charged image on a photoconductive drum, which then attracts charged toner particles that are subsequently transferred to charged paper before the particles are fused to the paper by heat and pressure.
Laser scanners typically form images on drums by scanning the drum line by line in a horizontal path, from left to right or vice versa. A one dimensional, unidirectional (e.g., horizontal) scan path is well-suited to image data stored in rectangular pages in raster format. Image data necessary for the imaging device to form one line (e.g., row) of the image is commonly referred to as a scan line. Since such image data is stored sequentially as horizontal scan lines, the image data is processed sequentially before it is provided to the horizontal laser scanner. Thus, as an image processor processes image data for an imaging device, it sequentially follows the scan path of the imaging device through the array of image data stored in memory.
When processing image data, an image processor typically operates on a window of the image comprising several scan lines, as opposed to operating on scan lines in isolation. A window of an image, for example, allows the image processor to identify patterns in the image (e.g., a solitary dot versus a series of dots), in order to make improvements or corrections to the image by adjusting the image data provided to the imaging device. Traditionally, a five-line image window of two scan lines above and two scan lines below the scan line being processed is sufficient for such purposes.
Generally a direct memory access (DMA) device or other memory access device accesses image data from main memory for an image processor. Working memory or cache, such as a synchronous random access memory (SRAM) first in first out (FIFO) or other buffer may be used to temporarily hold a scrolling window of image data. As each scan line of the image is processed, one scan line drops off and a new scan line is added to the buffer.
However, a problem arises where the image forming path (i.e., the scan path) of an imaging device is not one-dimensional (e.g., straight and/or horizontal), but instead is irregular and/or non-uniform. Such an irregular scan path may include curves, slopes, discontinuities and/or any other departure from a straight and/or horizontal line. Processing scan paths by the traditional method would consume an inordinate amount of resources. Further, image data may not be compatible with the scan path (e.g., it may be misaligned). For example, if a scan path traversed 80 horizontal lines (or rows) of the image, then processing each scan line using the traditional image window would require an 84 image line buffer to maintain a window around the scan line data. Thus, for 600 dpi color printing on 8.5-inch wide, letter-sized paper, employing the traditional technique would require approximately 400 kB of buffer memory for each color plane. Further, if the image data is in common raster format, then it is not directly compatible with scan lines that traverse numerous lines of image data.
It may therefore be advantageous to determine an alternative to the traditional image processing technique for horizontal scan lines in order to reduce costs that would otherwise be associated with processing image data for multi-dimensional scan lines.